package com.lx.zxs.service;

import com.lx.zxs.entity.Contacts;
import com.lx.zxs.entity.User;
import com.lx.zxs.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public User Sel(int id){
        return userMapper.Sel(id);
    }

    public Map findUserByUserName(String username) {
        return userMapper.findUserByUserName(username);
    }

    public List<Map> getChatData(String id1, String id2) {
        return userMapper.getChatData(id1,id2);
    }

    public List<Map> getLinkMan(int id) {
        List<Map> linkMan = userMapper.getLinkMan(id);
//        List<Map> wMan =  userMapper.getWEiDUMessage(id);
//        List<Integer> list = new ArrayList();
//        int i = 0;
//        int j;
//        for(Map link : linkMan) {
//            j = 0;
//            for (Map map : wMan) {
//                if(link.get("id").equals(map.get("id"))){
//                   j = 1;break;
//                }
//            }
//            if(j==0){
//                list.add(i);
//            }
//            i++;
//        }
//        for(Integer k : list){
//            linkMan.get(k).put("count",0);
//            wMan.add(linkMan.get(k));
//        }

        return linkMan;
    }

    public Map addChatData(Integer uid, Integer lid, Integer direction, Integer type, String content, String ctime,String linkName) {
        String uuid = UUID.randomUUID().toString();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        ctime = sdf.format(new Date());

        userMapper.addChatData(uid,lid,direction,type,content,ctime,linkName,uuid);
        return getChatDataByUUID(uuid);
    }

    public Map getChatDataByUUID(String uuid) {
        return userMapper.getChatDataByUUID(uuid);
    }

    public void updateContactsStatus(int st,String uuid) {
        userMapper.updateContactsStatus(st,uuid);
    }

    public User getUserByNameAndPass(String username, String pass) {

        return userMapper.getUserByNameAndPass(username,pass);
    }

    public void updateUserAvatar(Integer id, String absolutePath) {
        userMapper.updateUserAvatar(id,absolutePath);
    }

    public void updateUser(User user) {
        userMapper.updateUser(user.getId(),user.getCollage(),user.getMajor(),user.getEmail(),user.getPhone());
    }

    public void updateTime(Integer id) {
        userMapper.updateTime(id);
    }

    public void addUser(User user) {
        userMapper.addUser(user.getId(), user.getRealName(),user.getUsername(),user.getPassword(),user.getBirthdate(),user.getCollage(),user.getMajor(),user.getEmail(),user.getPhone());
    }

}